package com.mumu.muPictureBackend.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mumu.muPictureBackend.model.dto.pictrue.*;
import com.mumu.muPictureBackend.model.entity.Picture;
import com.mumu.muPictureBackend.model.entity.User;
import com.mumu.muPictureBackend.model.vo.PictureVO;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.net.URISyntaxException;

@Service
public interface PictureService extends IService<Picture> {
    PictureVO uploadPicture(Object multipartFile, UploadPictureRequest uploadPictureRequest, User loginUser);

    Boolean deletePicture(UploadPictureRequest uploadPictureRequest, User loginUser) throws URISyntaxException;

    Boolean updatePicture(UpdatePictureRequest updatePictureRequest, User loginUser);

    Page<Picture> queryPagePicture(QueryPagePicture queryPagePicture, HttpServletRequest httpServletRequest);

    Page<PictureVO> queryPictureVO(QueryPagePicture queryPagePicture, HttpServletRequest httpServletRequest);

    void doReviewPicture(ReviewRequest request,HttpServletRequest httpServletRequest);

    Integer uploadPictureBySearch(PictureUploadByBatchRequest pictureUploadByBatchRequest, User loginUser) throws IOException, InterruptedException;

    Page<PictureVO> queryHomePagePicture(QueryPagePicture queryPagePicture,HttpServletRequest httpServletRequest);

    Page<PictureVO> uploadPictureBySearchHomePage(PictureUploadByBatchRequest pictureUploadByBatchRequest, User loginUser);
}

